#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//创建节点结构体
typedef int LTDatatype;
typedef struct ListNode
{
	LTDatatype val;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

//双向链表功能声明:
//1.初始化:
void LTInit(ListNode** pphead);

//2.尾插:
void LTPushBack(ListNode* phead, LTDatatype x);

//3.打印:
void LTPrint(ListNode* phead);

//4.头插:
void LTPushFront(ListNode* phead,LTDatatype x);

//5.尾删：
void LTPopBack(ListNode* phead);

//6.头删:
void LTPopFront(ListNode* phead);

//7.在pos之后的位置插入数据:
void LTInsertAfter(ListNode* phead, int pos, LTDatatype x);

//8.在pos之前插入数据:
void LTInsertBefore(ListNode* phead, int pos, LTDatatype x);

//9.查找:
ListNode* LTFind(ListNode* phead, LTDatatype x);

//10.删除pos节点:
void LTErase(ListNode* phead, int pos);

//11.链表的销毁:
void LTDestroy(ListNode** pphead);
